大家好!歡迎來到「Build on Google AI」工程挑戰的第 15 天。
昨天,我們成功讓 PM Agent 扛住了海量的 DevFest 歷史文件與講者提案。但真實世界的開發流程中,PM 寫完 Spec 後的工作還沒結束——他們必須進行「任務交接 (Handoff)」。
今天,我們要把系統從單打獨鬥,升級為 Multi-Agent (多智能體) 架構。我們要打造一個專屬的「RD (編劇) Agent」,它的任務是精準解讀 PM 傳遞過來的情報,並將其轉化為具體的架構設計與執行腳本。
這不僅僅是把兩個 Prompt 串在一起,而是要解決企業級 Agent 開發中最棘手的問題:如何確保 AI 與 AI 之間的溝通不失真?
第一步:強制 PM Agent 說「工程語言」 (Structured Outputs)
人類 PM 和 RD 溝通時常有代溝,Agent 也是。如果 PM Agent 只是丟出一大串自然語言的摘要,RD Agent 很容易在生成程式碼時產生幻覺。
在 Google ADK 中,我們可以使用 Structured Outputs (結構化輸出),結合 Python 的 Pydantic 模型,強制 PM Agent 必須將情報打包成標準的 JSON 格式:
from pydantic import BaseModel
from typing import List
class SpecSchema(BaseModel):
core_features: List[str]
target_audience: str
api_requirements: List[str]
priority: str
# 讓 PM Agent 綁定這個 Schema
pm_agent = Agent(
name="pm_agent",
instruction="分析需求並輸出標準化規格。",
response_schema=SpecSchema # 強制輸出符合 RD 期待的資料結構
)
第二步:打造 RD (編劇) Agent
有了標準化的 Spec,接下來就是 RD Agent 登場。之所以稱它為「編劇」,是因為在軟體工程中,RD 就是負責撰寫系統運作「腳本 (Script)」的人。
RD Agent 不需要去閱讀昨天的海量原始文件,它的 Context 只需要專注於 PM 整理好的 SpecSchema。這種上下文隔離 (Context Isolation) 策略,不僅能大幅節省 Token,更能讓 RD Agent 的輸出高度專注且精準。
rd_agent = Agent(
name="rd_agent",
model="gemini-2.5-pro", # 實作邏輯需要高階推理能力
instruction="你是一個資深後端 RD。請接收 PM 傳來的 JSON 規格,撰寫出具體的 RESTful API 結構與資料庫 Schema 腳本。"
)
第三步:建立任務交接的 Workflow
有了 PM 和 RD,最後一步就是利用 ADK 的 Workflow 將它們串接起來。在 ADK 的有向圖 (Graph) 架構中,前一個 Agent 的輸出狀態 (State) 會完美封裝並傳遞給下一個節點,形成自動化的軟體開發流水線:
from google.adk import Workflow
# 建立從 PM 到 RD 的單向交接工作流
dev_workflow = Workflow(
name="pm_to_rd_handoff",
edges=[("START", pm_agent, rd_agent)]
)

小結
透過 ADK 的 Structured Outputs 與 Workflow,我們今天成功建立了一條沒有溝通障礙的自動化開發流水線。PM Agent 負責發散與收斂資訊,RD Agent 負責精準執行,各司其職。